package org.zgflex.desktop
{
	import flash.display.DisplayObject;
	import flash.events.Event;
	import flash.events.MouseEvent;

	/**
	 * Event used for all notifications from a Desktop component to the outside world.
	 * @author dankok
	 * 
	 */
	public class DesktopEvent extends Event
	{
		// desktop event types
		public static const LAYOUT_MANAGER_SET:String = "layoutManagerSet";
		public static const LAYOUT_UPDATE:String = "layoutUpdate";
		public static const LAYOUT_UPDATED:String = "layoutUpdated";
		
		// background event types
		public static const BACKGROUND_CLICK:String = "backgroundClick";
		public static const BACKGROUND_DOUBLE_CLICK:String = "backgroundDoubleClick";
		
		// icon event types
		public static const ICON_CLICK:String = "iconClick";
		public static const ICON_DOUBLE_CLICK:String = "iconDoubleClick";
		public static const ICON_REMOVED:String = "iconRemoved";
		
		/**
		 * If it's the icon event, this property references the icon 
		 */		
		public var icon:DisplayObject;
		
		/**
		 * A reference to a mouse event 
		 */		
		public var mouseEvent:MouseEvent;
		
		/**
		 * Constructor 
		 * @param type Event type
		 * @param bubbles Does it bubble?
		 * @param cancelable Is it cancelable?
		 * 
		 */		
		public function DesktopEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
		{
			super(type, bubbles, cancelable);
		}
		
	}
}